OpenClaw 接入企微(个人微信对话)保姆教程

955 字

OpenClaw 接入企微(个人微信对话)保姆教程

前两天我将OpenClaw和微信对接完成,这两天都是用微信在和OpenClaw对话,确实挺方便的。

用个人微信给OpenClaw发语音消息

今天抽空把教程整理分享出来,希望对你有用。任何问题可以留言或者私信。

核心插件由 @RainbowRain9(Cai Hongyu)提供与维护,特此致敬感谢。

本文把“OpenClaw 连接企业微信(个人微信可对话)”的完整流程整理成一篇能直接照做的保姆级教程。

为什么我们推荐用企业微信来接入微信(更安全)

OpenClaw 接入微信,其实市面上也有不少“直接接个人微信”的方案(各种非官方接入方式)。
但这类方案通常存在 封号风险,而且稳定性不可控。

所以本文选择一条更稳的路:用企业微信(官方允许的方式)把 OpenClaw 接入到微信体系里
后面你会看到:通过企业微信的「微信插件」,你依然可以在个人微信里打开入口进行对话。

方案选择:机器人 vs 自建应用

企业微信有两种常见接入方式:智能机器人和 自建应用
很多人一上来就选机器人,结果用着用着发现:只能被动一问一答,想要“定时提醒 / 主动推送 / 自动汇报”,做不到。

对比表(帮你快速做选择)

功能智能机器人自建应用被动回复消息✅✅主动发送消息❌✅支持群聊✅❌需要企业认证❌❌需要 corpSecret❌✅需要 IP 白名单❌✅配置复杂度简单中等

最大的区别(一句话讲清楚)

  • 机器人:只能被动回复(你问一句,它答一句)。
  • 自建应用:不仅能回复,还能 主动给你发消息(定时任务、日报、提醒、监控报警等)。

所以本文推荐自建应用的方式
另外,自建应用还可以通过企业微信的「微信插件」让你在个人微信里也能对话(这点非常爽)。

为什么我更推荐“个人电脑部署”(尤其 Mac)

如果你有一台 VPS / 云服务器:固定 IP、配置确实更省事。
但我更推荐把 OpenClaw 跑在个人电脑上,尤其是 Mac

  • OpenClaw 对 macOS 的体验更友好(你日常就在 Mac 上用它,最顺手)
  • 个人助理的很多能力,最终要和你电脑里的东西联动:文件、浏览器、桌面操作、脚本、自动化……放在本机更自然
  • 个人电脑唯一麻烦点:公网回调 + IP 白名单
  • 所以本文第一部分专门教你:用 Cloudflare Tunnel把回调打通
  • 同时把 企业可信 IP(白名单)这坑提前讲透,避免“能收不能发”

前置条件(建议先对照检查)

本文默认你已经具备以下条件,否则中途会卡住:

-

OpenClaw 已安装并能正常运行

- 已经在你计划使用的环境里部署好:可能是你的个人电脑,也可能是 VPS / 云服务器。

你已经开通了企业微信(个人也可以)

  • 企业微信个人就能申请,不需要企业认证,流程很方便。
  • 直接去企业微信官网开通一个企业即可。https://work.weixin.qq.com

你已经拥有一个域名

  • 后面配置回调 URL、Cloudflare Tunnel、HTTPS 等都会用到域名。
  • 如果还没有域名:建议直接去腾讯云的域名服务申请一个(现在很多域名很便宜,一年也就一点点钱)。

image

0. 先读这段:本教程实质上分两部分(看你是哪种部署条件)

企业微信的自建应用需要企业微信服务器能访问到你的 回调 URL

这里分两种典型情况:

A. 你有固定公网 IP(VPS/云服务器 + 域名/证书)

  • 你有 固定公网 IP
  • 你可以直接在服务器上跑 OpenClaw Gateway(或做 Nginx/Caddy 反代)
  • 企业微信后台的 企业可信 IP可以直接填你的服务器公网 IP

➡️ 这种情况:你可以跳过第一部分,直接从 第二部分开始做企业微信自建应用配置。

B. 你想在家里电脑 / Mac 上跑 OpenClaw(无固定公网 IP)

  • 家用宽带 IP 会变
  • 企业微信要访问回调 URL:直接用家宽 IP 不稳定(腾讯好像也不允许)
  • 你也不想折腾路由器端口映射
  • 也不想承担花生壳类似的内网穿透app可能带来的费用和风险

➡️ 这种情况:先做第一部分 Cloudflare Tunnel(把公网域名稳定转发到本机),
然后再继续做 第二部分企业微信自建应用配置

第一部分:在家里电脑 / Mac 上部署(Cloudflare Tunnel 解决公网回调)

这一部分的目标很简单:让企业微信能稳定访问到你本机的 OpenClaw 回调地址。
流程:公网域名 → Cloudflare → Tunnel → 转发到本机端口

1. 准备工作

你需要:

  • 一个域名(例如:example.com)
  • 一个子域名作为回调入口(例如:wecom.example.com)
  • 一台可联网的 Mac/电脑(macOS 建议已安装 Homebrew)
  • 本机能运行 OpenClaw(第二部分会安装 wecom-app 插件)

2. 把域名接入 Cloudflare(DNS 托管)

-

在 Cloudflare (https://www.cloudflare.com/zh-cn/)控制台 Add (如图第一个,后面选择免费套餐),按提示拿到两条 NS(Nameservers)

image

image

image

-

去你的域名服务商(例如腾讯云/阿里云/Namesilo 等),把 Nameserver 改成 Cloudflare 提供的 NS

image

image

  • 等 Cloudflare 上显示站点变为 Active(DNS 生效通常需要一点时间)

image

image

3. 安装 cloudflared(只给一个确定命令)

macOS(Homebrew):

brew install cloudflared
which cloudflared
cloudflared --version

4. 创建 Tunnel 并绑定子域名

4.1 登录授权

cloudflared tunnel login

浏览器会让你选站点,选自己的域名授权

4.2 创建 tunnel

cloudflared tunnel create openclaw

4.3 绑定子域名到 tunnel(自动创建 DNS 记录)

把 wecom.example.com换成你的子域名:

cloudflared tunnel route dns clawdbot wecom.example.com

5. 找到 OpenClaw Gateway 在本机监听的端口(非常关键)

Cloudflare Tunnel 需要知道:公网请求进来后,要转发到你本机哪个端口。
如果端口不对,企业微信后台保存回调时会直接失败。

先把 OpenClaw Gateway(以及第二部分的 wecom-app)跑起来后,再查端口:

lsof -nP -iTCP -sTCP:LISTEN | grep -E "node|claw|wecom|gateway"

常见默认端口是 18789,但以你机器实际结果为准

6. 配置 cloudflared 转发(config.yml)

创建文件:~/.cloudflared/config.yml
把 <你的用户名>、<你的TunnelID>、端口替换成你自己的:

tunnel: clawdbot
credentials-file:/Users/<你的用户名>/.cloudflared/<你的TunnelID>.json

ingress:
-hostname:wecom.example.com
    service:http://127.0.0.1:18789
-service:http_status:404

7. 启动 Tunnel 并测试公网连通

前台启动(先用于测试):

cloudflared tunnel run clawdbot

测试公网是否能打到回调路径(把域名换成你的):

curl -i https://wecom.example.com/wecom-app

你可能会看到类似 400 missing query params,这往往是正常的——企业微信验证时会带 query 参数。
(如果你看到的是“连接失败/超时/502”,那就是 tunnel 或本机端口没通。)

8. 关键补充:企业可信 IP 白名单(不配就会“能收不能发”)

这一段非常容易踩坑:

  • 你通过企业微信给 OpenClaw 发消息:通常没问题(企业微信 → 你的回调)
  • 但 OpenClaw 要回复你主动发消息:企业微信会要求你配置 企业可信 IP(白名单)
  • 否则就会出现:能收到消息,但回复/发送失败

8.1 查“本机当前出口公网 IP”

在你跑 OpenClaw 的那台机器上执行(任选一个):

curl -s https://api.ipify.org ; echo

或者

curl -s ifconfig.me ; echo

得到一个公网 IP(比如 1.2.3.4)。

8.2 把这个 IP 加到企业微信「企业可信 IP」

路径:企业微信管理后台 → 你的自建应用 → 企业可信 IP→ 添加 1.2.3.4

8.3 为什么这一步在家用环境更重要?

因为家用宽带公网 IP 不是固定的

  • 过一段时间 IP 变了,你就可能突然“回复不了/发不出去”
  • 这时第一反应就是:重新查出口公网 IP → 更新白名单

如果你不想老改白名单,后面可以考虑用一台固定 IP 的服务器做中继转发,把出口 IP 固定下来。
更详细的白名单说明,后面第二部分 3.3也会再讲一次。

9. (可选)macOS 开机自启 cloudflared(LaunchAgent)

如果你希望 Mac 开机登录后自动运行 tunnel,可以用 LaunchAgent。
下面是一套可直接照做的版本(按你的实际路径替换)。

9.1 找到 cloudflared 的绝对路径

which cloudflared

9.2 创建 LaunchAgent 配置文件

创建文件:

mkdir -p ~/Library/LaunchAgents
nano ~/Library/LaunchAgents/com.cloudflare.cloudflared.plist

把以下内容粘贴进去(注意替换两处路径:/opt/homebrew/bin/cloudflared和你的用户名):



    Label
    com.cloudflare.cloudflared

ProgramArguments
    
        /opt/homebrew/bin/cloudflared
        tunnel
        run
        clawdbot
    

RunAtLoad
    

KeepAlive
    

StandardOutPath
    /Users/<你的用户名>/.cloudflared/cloudflared.out.log

StandardErrorPath
    /Users/<你的用户名>/.cloudflared/cloudflared.err.log

9.3 加载并启动

launchctl load ~/Library/LaunchAgents/com.cloudflare.cloudflared.plist
launchctl start com.cloudflare.cloudflared

9.4 查看是否在运行

launchctl list | grep cloudflared

9.5 停止 / 卸载

launchctl stop com.cloudflare.cloudflared
launchctl unload ~/Library/LaunchAgents/com.cloudflare.cloudflared.plist

第二部分:企业微信自建应用(wecom-app)配置(核心重点)

你已经有稳定公网回调地址后(固定 IP 或 Cloudflare Tunnel),就可以做这一部分了。
这部分就是让企业微信“自建应用”真正连上 OpenClaw。

0. 前置条件

你需要:

  • 企业微信账号(个人也能注册企业)
  • 一个公网可访问的回调地址(推荐 HTTPS)
  • OpenClaw 已安装并可运行
  • Node.js + pnpm(用于构建插件)

1. 安装 wecom-app 插件(openclaw-china)

1.1 克隆仓库

cd ~/.openclaw/extensions
git clone https://github.com/RainbowRain9/openclaw-china.git

1.2 安装依赖

cd ~/.openclaw/extensions/openclaw-china/extensions/wecom-app
pnpm install

1.3 构建插件

pnpm build

1.4 安装到 OpenClaw(链接模式)

openclaw plugins install -l ~/.openclaw/extensions/openclaw-china/extensions/wecom-app

-l是链接模式:你改插件源码后不用重装,重启 Gateway 即可生效。

1.5 验证安装

openclaw plugins list

确认列表里出现:@openclaw-china/wecom-app

2. 企业微信后台:创建「自建应用」并拿到凭证

2.1 创建应用

企业微信管理后台 →「应用管理」→「自建」→「创建应用」
填写应用名称、logo、可见范围等。

image

image

2.2 获取 AgentId 与 Secret(corpSecret)

进入应用详情页,记录:

  • AgentId
  • Secret(这个就是 corpSecret)

image

2.3 获取企业 ID(corpId)

「我的企业」→ 企业信息页底部找到:企业 ID(就是 corpId)

image

3. 企业微信后台:配置「接收消息服务器」(回调)

3.1 打开「设置 API 接收」

在应用详情页找到「接收消息」→「设置 API 接收」

image

3.2 填写 URL / Token / EncodingAESKey(重点)

URL 格式:

<协议>://<域名或IP>:<端口>/<路径>

示例(推荐域名):

  • https://wecom.example.com/wecom-app

示例(如果你是服务器固定 IP 直连):

  • http://123.45.67.89:18789/wecom-app

解释:

  • 端口:OpenClaw Gateway 监听端口(常见 18789,以实际为准)
  • 路径:必须与 OpenClaw 配置里的 webhookPath一致(默认 /wecom-app)
  • Token:你自定义一个字符串(比如 your-random-token,建议随机获取)
  • EncodingAESKey:后台点“随机获取”(一般 43 位)

非常重要:先把 OpenClaw 配好并启动,再回到后台点「保存」,否则验证会失败。

image

3.3 企业可信 IP(白名单)——自建应用必须配

这一步决定你能不能“回复/主动发消息”。

在应用详情页找到「企业可信 IP」,添加你的公网出口 IP:

  • 固定 IP / VPS:填你的 VPS 公网 IP(稳定)
  • 家用 + Cloudflare Tunnel:填你家宽当前的出口公网 IP(可能会变)
  • 如果之后突然发不出去,优先怀疑:出口 IP 变了 → 更新白名单
  • 想彻底稳定:可以考虑用固定 IP 服务器做中继转发

image

4. 配置 OpenClaw(wecom-app 通道参数)

你可以用命令行写入(推荐),或直接编辑 ~/.openclaw/openclaw.json。

4.1 命令行配置(推荐)

把下面字段替换成你自己的:

  • token:和后台一致
  • encodingAESKey:和后台一致
  • corpId:企业 ID
  • corpSecret:应用 Secret
  • agentId:应用 AgentId

openclaw config set channels.wecom-app '{
  "enabled": true,
  "webhookPath": "/wecom-app",
  "token": "your-random-token",
  "encodingAESKey": "your-43-char-encoding-aes-key",
  "corpId": "your-corp-id",
  "corpSecret": "your-app-secret",
  "agentId": 1000002
}' --json

4.2 直接编辑 openclaw.json(可选)

编辑:~/.openclaw/openclaw.json:

{
  "channels": {
    "wecom-app": {
      "enabled": true,
      "webhookPath": "/wecom-app",
      "token": "your-random-token",
      "encodingAESKey": "your-43-char-encoding-aes-key",
      "corpId": "your-corp-id",
      "corpSecret": "your-app-secret",
      "agentId": 1000002,
      "inboundMedia": {
        "enabled": true,
        "maxBytes": 10485760,
        "keepDays": 7
      }
    }
  }
}

5. 重启 OpenClaw Gateway

openclaw gateway restart

6. 回到企业微信后台:保存回调配置并测试

6.1 保存

回到「设置 API 接收」页面,点「保存」。
如果 URL/Token/AESKey/端口/路径都对,应该能保存成功。

6.2 测试收发

  • 在企业微信 App 中打开你创建的应用,发一条消息
  • 看 OpenClaw 日志是否收到消息并回复
  • 如果“能收到但回复失败”,优先检查 企业可信 IP 白名单

7. 在个人微信里使用入口

企业微信后台「我的企业」里有「微信插件」:用个人微信扫码「邀请关注」
之后你可以在个人微信里打开这个企业应用进行对话。

image

常见坑位与排障

1)企业微信后台保存回调失败(“请求不通过”)

按顺序排查:

  • OpenClaw 是否已启动并监听正确端口(本机端口是否对)
  • 回调 URL 的路径是否与 webhookPath一致(比如都为 /wecom-app)
  • Token / EncodingAESKey 是否完全一致(不要多空格)
  • 公网是否可访问(用 curl 测试你的回调 URL)

2)能收到消息,但发不出去/回复不了

90% 都是这两个原因:

  • corpId / corpSecret / agentId配错
  • 企业可信 IP没配或不包含你当前出口公网 IP(家宽变了)

3)Unknown target / send requires a target?

在 wecom-app 里,target 通常是 user:形式,不是备注名/显示名。

示例:

send user:CaiHongYu 你好

4)SVG 发出去不是图片?

企业微信对图片消息更偏 png/jpg,svg可能会被当文件或失败。建议用 png/jpg。

附录:快速检查清单(照着对就不容易错)

  • [ ] 插件已安装:openclaw plugins list能看到 @openclaw-china/wecom-app
  • [ ] OpenClaw Gateway 正在运行,并监听端口(常见 18789,以实际为准)
  • [ ] 企业微信后台 URL 路径与 webhookPath一致(例如 /wecom-app)
  • [ ] Token / AESKey 完全一致(不要多空格)
  • [ ] 企业可信 IP 已配置并包含你的出口公网 IP
  • [ ] (家用部署)Cloudflare Tunnel 能 curl通你的域名回调地址